package com.liwy3.thread;

import java.util.concurrent.CyclicBarrier;

/**
 * Copyright © 2022年10月20日 北京自如信息科技有限公司. All rights reserved.
 *
 * @Prject: liwy3
 * @Package: com.liwy3.thread
 * @Description: 等待线程达到两个后， 然后放行
 * @author: Crazy4J
 * @date: 2022年10月20日 18:34
 * @version: V1.0
 */
public class CyclicBarrierDemo {

    private static CyclicBarrier cyclicBarrier = new CyclicBarrier(2);

    public static void main(String[] args) {

        new Thread(() -> {
            try {
                System.out.println("=======任务一等待执行=======");
                Thread.sleep(2000);
                cyclicBarrier.await();
                System.out.println("任务一执行完毕");
            } catch (Exception e) {
                e.printStackTrace();
            }
        }).start();

        new Thread(() -> {
            try {
                System.out.println("=========任务二等待执行========");
                Thread.sleep(2000);
                cyclicBarrier.await();
                System.out.println("任务二执行完毕");
            } catch (Exception e) {
                e.printStackTrace();
            }
        }).start();


    }


}
